<?php
/**
 * Reliz form.
 *
 * @package    IPLIFE
 * @subpackage form
 * @author     alexey.shapran@gmail.com
 * @version    SVN: $Id: sfDoctrineFormTemplate.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class RelizFrontForm extends BaseRelizForm
{
	public function configure()
	{
		
		$this->widgetSchema['title'] = new sfWidgetFormInput(array(),array('style'=>'width:300px'));
		$this->widgetSchema['id'] = new sfWidgetFormInputHidden();
		$this->widgetSchema['user_id'] = new sfWidgetFormInputHidden();
		$this->widgetSchema['alias'] = new sfWidgetFormInputHidden();
		$this->widgetSchema['tags'] = new sfWidgetFormInputHidden();
		$this->widgetSchema['short'] = new sfWidgetFormTextarea(array(),array('cols'=>100));
		$this->widgetSchema['keywords'] = new sfWidgetFormTextarea(array(),array('cols'=>100));
		$this->widgetSchema['description'] = new sfWidgetFormInputHidden();
		$this->widgetSchema['updated_at'] = new sfWidgetFormInputHidden();
		$this->widgetSchema['_csrf_token']= new sfWidgetFormInputHidden();
		$this->widgetSchema['is_published'] = new sfWidgetFormInputHidden();
		$this->widgetSchema['is_allowed_comments'] = new sfWidgetFormInputCheckbox();
				
		$this->widgetSchema['image'] = new sfWidgetFormInputFileEditable(array(
			'label'     => 'Основное изображение',
			'file_src'  => sfConfig::get('sf_upload_dir').'/relizes/'.$this->getObject()->getImage(),
			'is_image'  => true,
			'delete_label' => 'Удалить изображение',
			'edit_mode' => !$this->isNew(),
			'template'  => ($this->getObject()->getImage())	?	'<div><img width="40px" src="/uploads/relizes/'.$this->getObject()->getImage().'" /><br />%input%<br />%delete% %delete_label%</div>'
															:	'<div>%input%<br />%delete% %delete_label%</div>'
		));
		
		$this->widgetSchema['image_text'] = new sfWidgetFormInputHidden();

		$this->validatorSchema['image'] = new sfValidatorFile(array( 
			'required'   => false, 
			'path'       => sfConfig::get('sf_upload_dir').'/relizes', 
			'mime_types' => 'web_images',
			'max_size' => 1000*1024 //1Mb
		));

		//$this->widgetSchema['is_allowed_comments'] = new sfWidgetFormInputCheckbox();
		
		$this->widgetSchema['body'] = new sfWidgetFormTextareaTinyMCE(array(
			'width'  => 850,
			'height' => 350,
		));
		
		$this->widgetSchema->setLabels(array(
		'title' =>'Заголовок',
		'category_id'=>'Категория релиза',
		'alias'=>'Url',
		'short'=>'Анонс',
		'tags'=>'Теги',
		'keywords'=>'Ключевые слова',
		'description'=>'Ключевое описание',
		'image'=>'Главное фото',
		'body'=>'Текст релиза',
		'is_allowed_comments'=>'Разрешить комментарии',
		'image_text'=>'Текст к главному фото',
		));
		
		$this->widgetSchema->setHelps(array(
		'title' =>'<div class="helps">Название релиза. 0-255 символов</div>',
		'category_id'=>'<div class="helps">Выберите категорию релиза</div>',
		'alias'=>'<div class="helps">Ссылка для релиза. Допустимы только символы a-z 0-9 тире и нижнее подчеркивание</div>',
		'short'=>'<div class="helps">Краткое описание релиза (анонс). Одно-два предложения</div>',
		'keywords'=>'<div class="helps">Введите ключевые слова для поиска через запятую</div>',
		'description'=>'<div class="helps">Введите ключевое описание</div>',
		'image'=>'<div class="helps">Квадратное. Размер: не менее 150*150 px</div>',
		'body'=>'<div class="helps">Введите основной текст релиза (Дополнительные фотографии будут доступны после сохранения в разделе редактирования)</div>',
		'tags'=>'<div class="helps">Введите теги релиза через запятую</div>',
		'is_allowed_comments'=>'<div class="helps">Отметьте, если нужно включить комментирование</div>',		
		));
		
		// Setup validators
		$this->validatorSchema['category_id'] = new sfValidatorString(array('required'=>true));
		$this->validatorSchema['title'] = new sfValidatorString(array('required'=>true));
		$this->validatorSchema['alias'] = new sfValidatorRegex(array('pattern'=>'/[^a-zA-Z0-9-_]/', "must_match"=>false));
		$this->validatorSchema['image_delete'] = new sfValidatorBoolean();
		
		$this->validatorSchema->setPostValidator(new sfValidatorDoctrineUnique(array('model'=>'Reliz' , 'column'=>'alias')));
		
		$this->widgetSchema->setNameFormat('%s');
	}
}
